/** 请求的根路径 */
const API_BASE_URL = 'https://tea.qingnian8.com';

/**
 * @description 请求方法
 * @param {*} options 请求的配置
 * @returns Promise
 */
export function request(options) {
  const { url, method = 'GET', timeout = 10000 } = options;

  /** 请求的全路径 */
  const REQUEST_FULL_PATH = API_BASE_URL + url;

  return new Promise((resolve, reject) => {
    wx.request({
      ...options,
      url: REQUEST_FULL_PATH,
      header: {
        'access-key': 235175,
      },
      method,
      timeout,
      success(res) {
        const { errCode, data } = res.data;

        if (errCode === 0) {
          resolve(data);
        }
      },
      fail(err) {
        console.log(err);
        reject(err);
      },
    });
  });
}

/**
 * @description get请求
 * @param {*} url 地址
 * @param {*} params 参数
 * @param {*} options 配置
 * @returns Promise
 */
export function get(url, params, options) {
  return request({
    ...options,
    method: 'GET',
    url,
    data: params,
  });
}

/**
 * @description post请求
 * @param {*} url 地址
 * @param {*} data 参数
 * @param {*} options 配置
 * @returns Promise
 */
export function post(url, data, options) {
  return request({
    ...options,
    method: 'POST',
    url,
    data,
  });
}

/**
 * @description del请求
 * @param {*} url 地址
 * @param {*} data 参数
 * @param {*} options 配置
 * @returns Promise
 */
export function del(url, params, options) {
  return request({
    ...options,
    method: 'DELETE',
    url,
    data: params,
  });
}

/**
 * @description put请求
 * @param {*} url 地址
 * @param {*} data 参数
 * @param {*} options 配置
 * @returns Promise
 */
export function put(url, data, options) {
  return request({
    ...options,
    method: 'PUT',
    url,
    data,
  });
}
